Data structures facilitate the organization and referencing of data. Many different types of data structures are known in the art, including linked lists, stacks, trees, arrays and others. The tree is a widely-used hierarchical data structure of linked nodes. The conventional tree is an acyclic connected graph where each node has a set of zero or more child nodes and at most one parent node. A tree data structure, unlike its natural namesake, grows down instead of up, so that by convention, a child node is typically referred to as existing “below” its parent. A node that has a child is called the child's parent node (or ancestor node, or superior node). In a conventional tree, a node has at most one parent. The topmost node in a tree is called the root node. A conventional tree has at most one topmost root node. Being the topmost node, the root node does not have a parent. Operations performed on the tree commonly begin at the root node. All other nodes in the tree can be reached from the root node by following links between the nodes. Nodes at the bottommost level of the tree are called leaf nodes or terminal nodes. As a leaf node is at the bottommost level, a leaf node does not have any children.